Разработка смарт-контрактов

Хотите сделать свой бизнес более эффективным, используя смарт-контракты? Разработаем для вас смарт-контракт, помогающий увеличить эффективность и автономность вашего бизнес-проекта.

Создаём архитектуру как для новых, так и уже существующих криптопроектов. Проводим аудит смарт-контрактов с применением ручных и автоматических средств поиска ошибок и возможных уязвимостей.

Слушаем и слышим клиентов, укладываемся в сроки, предлагаем оптимальные решения для поставленных задач и целей.

Оставьте заявку Или свяжитесь с нами в whatsapp WhatsApp

Если вы хоть немного погружены в блокчейн и криптовалюты, то наверняка не раз слышали слово смарт-контракт.

Первое, что приходит на ум, — это что-то из области юриспруденции, какие-то умные договоры, за исполнением которых следит алгоритм и которые, вероятно, нельзя нарушать. Второе — это будущее сделок, скоро все они будут заключаться только через смарт-контракты. Разберёмся, так ли это в действительности.

Что такое смарт-контракт

Смарт-контракт (smart contract — умный контракт) — компьютерный алгоритм, предназначенный для заключения договора, контроля выполнения условий и самоисполнения обязательств. Он записывается в виде кода и выполняется только в блокчейне — распределённом реестре, которым управляет децентрализованная сеть из равноправных узлов.

Как вы уже поняли, никакого отношения к сделкам в реальном мире это не имеет. То есть с помощью смарт-контракта не получится купить машину или сделать безопасной поставку вагона пшеницы. А вот обменять один токен на другой без посредников или вложить его под проценты в криптобанк — пожалуйста.

В реальном мире договоры заключаются на бумаге или в электронном виде с использованием ЭЦП. Их соблюдение контролирует государство, а споры решаются в судах. В Сети есть упоминания, как кто-то продал квартиру или какой-то другой актив с помощью смарт-контракта, но всё это лукавство.

Как и в офлайне, где договоры регулируются конкретными странами и юрисдикциями, смарт-контракт действует только в той сети, в которой он написан и развёрнут.

Понять суть проще на примере торгового автомата. Один пользователь засовывает в автомат марки, другой — ракушки. В автомате установлен курс обмена — 2 марки за 1 ракушку. Оба пользователя доверяют автомату, потому что его исходный код открыт, каждый может с ним ознакомиться.

Как появились умные контракты

Идею и термин «умный контракт» придумал Ник Сабо в 1994 году. Он описал его как криптографический протокол, который самостоятельно проводит сделки и контролирует их выполнение на основе алгоритмов.

Умные контракты стали широко применяться на практике, когда появился Эфириум. В 2013 году будущий основатель проекта Виталик Бутерин понял, что протокол Биткоина не пригоден для смарт-контрактов, поскольку проектировался не для этого. Тогда он решил создать с нуля свой протокол, более подходящий для такой задачи.

Смарт-контракты позволяют заключать сделки и проводить операции по заранее установленным правилам без посредников. Благодаря блокчейну такие операции прозрачны, прослеживаемы и необратимы.

Где используются смарт-контракты

Использование смарт-контрактов

Приложения на основе смарт-контрактов, размещённых в блокчейн-сетях, называются dApps (decentralized apps — децентрализованные приложения). Смарт-контракты с блокчейном обеспечивают исполнение обязательств по криптовалютным продуктам, делают их надёжными, предоставляют защищённую платёжную систему для криптовалют. Оракулы играют ключевую роль в создании смарт-контрактов нового поколения, которые предоставляют финтех-продукты и монетарные инструменты, например, те, что основаны на рыночных данных.

  • Выпуск токенов. Пожалуй, самый популярный способ использования. Наличие в открытом доступе сотен примеров обеспечивает простоту и доступность выпуска токенов для каждого.
  • Децентрализованные биржи. DEX (decentralized exchanges) — это биржи на блокчейне, позволяющие торговать токенами без необходимости хранить их у централизованных компаний. Яркие представители — Uniswap, PancakeSwap, SushiSwap, Polyx DEX. Самый распространённый вид DEX — автоматические маркетмейкеры. Они представляют собой ончейн-пулы ликвидности, обеспечивающие обмен токенов по установленной формуле, вместо книги ордеров. Благодаря им трейдеры получают доступ к ликвидности, а поставщики ликвидности — пассивный доход.
  • Стейкинг. Это предоставление криптовалюты в качестве доли. Протоколы используют его, чтобы обеспечить эффективную токеномику. Так становится видно, кому и в какой пропорции должны распределяться вознаграждения за стейкинг. Либо они могут быть урезаны, то есть автоматически изъяты при определённых обстоятельствах.
  • Фарминг. Эта новинка появилась в экосистеме DeFi и используется там, чтобы удерживать ликвидность и справедливо распределять токены управления протоколом между пользователями. Большинство DeFi-проектов, предлагающих фарминг, вознаграждают поставщиков ликвидности нативными токенами, которые финансируют развитие протокола.
  • Алгоритмические стейблкоины. Они похожи на централизованные и децентрализованные стейблкоины тем, что тоже обеспечиваются фиатом, криптовалютой или любым другим активом. Но есть отличие — алгоритмические стейблкоины поддерживают эквивалент привязки с помощью системы автоматических вознаграждений и штрафов. Если цена опускается ниже привязки, то сжигаются лишние токены, а если поднимается выше привязки, то выпускаются дополнительные токены.

Как создать смарт-контракт

Разберём создание смарт-контракта на примере Ethereum, самой распространённой блокчейн-платформы для них.

Сначала нужно проработать логику смарт-контракта и написать исходный код. Для этого используется язык программирования Solidity, который в чём-то похож на JavaScript. Код можно писать в любой среде разработки, но наибольшее распространение получила веб-среда Remix Online IDE. В ней можно разработать смарт-контракт, скомпилировать и разместить его в сети.

После компиляции нужно развернуть код в сети. Для этого делается специальная транзакция, а размещающий адрес платит комиссию сети, в нашем случае в ETH. Чем сложнее смарт-контракт, тем выше комиссия.

Если всё прошло успешно, то транзакция на размещение будет проведена в одном из блоков и смарт-контракт окажется в блокчейне под уникальным адресом. После этого он сможет принимать разные команды.

Сколько стоит разработка смарт-контрактов

Стоимость смарт-контракта напрямую зависит от его сложности. Например, создание простого смарт-контракта по выпуску токенов стоит 1000–5000 USD, а разработка сложных dApps начинается от 10 000 USD и может стоить более 100 000 USD.

Мы в Polygant занимаемся блокчейн-разработкой 10 лет и за это время создали почти сотню умных контрактов разной сложности. Напишите нам в Telegram, чтобы обсудить, насколько сложный нужен вашему криптопроекту.

Что такое аудит смарт-контрактов

Аудит безопасности — независимое изучение кода смарт-контракта, который проекты обычно размещают в GitHub. Аудит необходим DeFi-проектам и dApps, чьи многочисленные пользователи проводят транзакции на миллионы долларов. Как правило, аудит включает 4 этапа:

  1. Аудиторы проводят первичный анализ контрактов.
  2. Аудиторы предоставляют результаты анализа разработчикам проекта для принятия мер.
  3. Разработчики проекта вносят изменения, устраняя обнаруженные ошибки.
  4. Аудиторы составляют финальный отчёт с учётом внесённых изменений и оставшихся ошибок.

Аудит — стандартная процедура, которую заказывают масштабные криптопроекты. Многие инвесторы учитывают аудит, когда изучают новые DeFi-проекты. Причём они больше доверяют отчётам, составленным авторитетными аудиторскими фирмами.

Зачем нужен аудит

Через смарт-контракты переводятся или блокируются огромные суммы криптовалют, что часто привлекает хакеров. Из-за малейших ошибок в коде проект может лишиться миллионов пользовательских средств. Например, взлом The DAO привёл к краже ETH на 50 миллионов долларов и расколу Эфириума.

Команде проекта нужна независимая проверка безопасности контракта, ведь его транзакции необратимы. Особенности технологии блокчейн не позволят вернуть криптовалюту и решить проблемы после взлома, поэтому любые уязвимости надо выявлять заранее.

Цели аудита смарт-контрактов

Аудит помогает достичь разных целей, например:

Нахождение и закрытие уязвимостей

Аудиторы проверяют смарт-контракты на уязвимости. Некоторые обнаруживаются сразу, но большинство выявляется только с помощью специальных техник и инструментов. Например, при рыночной манипуляции уязвимый смарт-контракт может быть атакован с использованием мгновенных займов. Чтобы обнаружить такие слабые места, аудиторы пробуют взломать смарт-контракт. Вот самые распространённые атаки, которые они имитируют:

  • Рекурсивный вызов. Контракт вызывает другой, внешний контракт до того, как зафиксировать изменения. После этого второй контракт может рекурсивно взаимодействовать с первым неприемлемым способом, поскольку баланс первого ещё не обновился.
  • Опережение транзакции. Когда исполнение контракта зависит от его положения в блоке, можно протолкнуть транзакцию в очереди, переплатив за газ, чтобы нечестно победить в аукционах, лотереях, играх.
  • Целочисленное переполнение. Когда контракт выполняет арифметическую операцию, значение может превысить ёмкость хранилища, что приводит к неверному расчёту сумм.

Устранение ошибок безопасности

Аудиторы также исследуют сеть с размещёнными в ней смарт-контрактами и программный интерфейс приложения (API), который используется для взаимодействия с dApp. Если окажется, что проект не выдерживает DDoS-атаку или его API скомпрометирован, то пользователям небезопасно подключать криптокошельки к потенциально вредоносным блокчейн-приложениям.

Оптимизация затрат газа

Помимо проверки безопасности блокчейна, аудиторы изучают, насколько оптимизированы и эффективны смарт-контракты. Профессиональные блокчейн-разработчики стараются оптимизировать их производительность. Но если над проектом трудились неопытные разработчики, то они могли пренебречь оптимизацией.

Некоторым смарт-контрактам для исполнения необходимо отправить серию транзакций. Учитывая, что в блокчейн-сетях вроде Эфириума плата за газ высока, эффективные смарт-контракты позволили бы экономить на комиссиях за транзакции. А если они неэффективны, то дорогой газ может даже нарушить их работу.

Как проводится аудит смарт-контрактов

Аудит безопасности — распространённая услуга. И хотя методы аудиторских фирм могут различаться, типичный аудит проводится так:

  1. Определяется объём работ. Спецификации контракта зависят от предназначения и архитектуры проекта. Они позволяют аудиторам понять, каких целей добивались разработчики при написании смарт-контракта.
  2. Оценивается стоимость проведения аудита с учётом объёма работы.
  3. Проводится аудит. Техники и инструменты проверки зависят от аудиторов. Они используют как автоматическую, так и ручную проверку.
  4. Пишется черновик отчёта с обнаруженными ошибками. Он передаётся команде проекта для устранения проблем.
  5. Составляется финальный отчёт, в котором указываются действия, предпринятые разработчиками проекта для исправления ошибок.

Что такое аудиторский отчёт

Отчёт предоставляется после проведения аудита. Во многих отчётах проблемам присваивается степень строгости: критическая, серьёзная, существенная, тривиальная. Также указывается статус проблемы, который сменяется, если команда проекта успела устранить её до составления финального отчёта.

Кроме общих выводов отчёт содержит анализ ошибок в коде, примеры неэффективного кода, рекомендации по исправлению. Когда команда проекта получит финальный отчёт, она может опубликовать его целиком или только результаты на сайте и в сообществе.

Сколько стоит аудит смарт-контракта

Стоимость зависит от количества смарт-контрактов, аудит которых заказывает криптопроект. В среднем аудит стоит 2000–3000 USD. Аудит сложного проекта может стоить более 10 000 USD. На стоимость услуги ещё может влиять репутация аудиторской фирмы.

У Polygant высокая репутация, но мы не считаем это поводом завышать стоимость аудита. Отправьте нам запрос, чтобы узнать, во сколько обойдётся аудит в вашем случае.

Аватар
Johnny Walker
Chief Editor
7 февраля 2020 Updated on  Обновлено   11 ноября 2023